﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Domain;
using Controller;
using System.Drawing.Imaging;
using System.IO;
using Repository;


namespace Ecommerce
{
    public partial class NovoProduto : Form
    {
        public NovoProduto()
        {

            InitializeComponent();
            FornecedorController fc = new FornecedorController();
            List<Fornecedor> fornecedores = new List<Fornecedor>();
            fornecedores = fc.ListarFornecedor();
            comboBox1.DataSource = fornecedores;
            comboBox1.DisplayMember = "Nome";
        }

        private Boolean validaFormulario()
        {
            if (textBox1.Text.Equals(""))
            {
                MessageBox.Show("O campo NOME não foi preenchido");
                textBox1.Focus();
                return false;
            }
            if (textBox2.Text.Equals(""))
            {
                MessageBox.Show("O campo MARCA não foi preenchido");
                textBox2.Focus();
                return false;
            }

            if (textBox3.Text.Equals(""))
            {
                MessageBox.Show("O Campo MODELO não foi preenchido");
                textBox3.Focus();
                return false;
            }

            if (textBox4.Text.Equals("")) 
            {
                MessageBox.Show("O campo PREÇO não foi preenchido");
                textBox4.Focus();
                return false;
            }

            if (richTextBox1.Text.Equals(""))
            {
                MessageBox.Show("O campo Descrição não foi preenchido");
                richTextBox1.Focus();
                return false;
            }
 //           if (comboBox1.Text.Equals("Selecione"))
 //           {
 //               MessageBox.Show("O campo FORNECEDOR não foi preenchido");
 //               comboBox1.Focus();
 //               return false;
 //           }
            return true;
        }

        private Produto ProdutoCadastrado() 
        {
            if (validaFormulario())
            {
                Produto p = new Produto();
                p.Nome = textBox1.Text;
                p.Marca = textBox2.Text;
                p.Modelo = textBox3.Text;
                p.Preco = Convert.ToDecimal(textBox4.Text);
                p.Foto = (Bitmap)pictureBox1.Image;
                p.Fornecedor = (Fornecedor)comboBox1.SelectedItem;
                p.Descricao = richTextBox1.Text;
                Fornecedor f = p.Fornecedor;
                return p;
            }
            return null;
        }
        
        private void NovoProduto_Load(object sender, EventArgs e)
        {

        }

        private void panel1_Paint(object sender, PaintEventArgs e)
        {

        }

        private void button2_Click(object sender, EventArgs e)
        {
            if (validaFormulario())
            {
                ProdutoController pc = new ProdutoController();
                if (pc.cadastrarProduto(ProdutoCadastrado()))
                {
                    MessageBox.Show("Produto '" + ProdutoCadastrado().Nome + "' cadastrado com sucesso! ");
                }
                else 
                {
                    MessageBox.Show("Erro ao cadastrar '" + ProdutoCadastrado().Nome + "'!!!");
                }
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                string nomeArquivo = openFileDialog1.FileName;
                Bitmap bmp = new Bitmap(nomeArquivo);
                pictureBox1.Image = bmp;
                MemoryStream ms = new MemoryStream();
                bmp.Save(ms, ImageFormat.Bmp);
                byte[] foto = ms.ToArray();
            }
        }

        private void richTextBox1_TextChanged(object sender, EventArgs e)
        {

        }

        private void groupBox1_Enter(object sender, EventArgs e)
        {

        }

        private void textBox4_TextChanged(object sender, EventArgs e)
        {

        }
    }
}
